import complex_query from '@dfeidao/atom-nodejs/db/complex-query';
import { IncomingHttpHeaders } from 'http';
import { systemid } from '../../atom/config';

interface Message {
	filter: {
		a: string,
		inform_title: string,
		receive_time: number,
		receive_time_end: number
	};
	// cookie: {
	// 	uk: string;
	// 	[key: string]: string
	// };
	// urls: {
	// 	base: string;
	// 	origin: string;
	// 	url: string;
	// };
	// query: {};
	// params: {};
	// headers: {};
	// captcha: string;
}

// interface IWebResult {
// 	data: unknown;
// 	cookie?: {
// 		[name: string]: string;
// 	} | null;
// 	content_type?: string;
// 	headers?: {
// 		[key: string]: string[];
// 	};
// 	attachment?: string;
// 	redirect?: string;
// 	status_code?: number;
// }
// 表名	notice_receive
// 标题	通知接收
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// notice_receive_no	通知接收编号	string	50	√	ⅹ
// _id	id	string	50	ⅹ	√
// receive_no	接收人编号	string	50	√	ⅹ
// file_address	文件地址	string	200	√	ⅹ
// inform_title	通知标题	string	50	√	ⅹ
// receive_time	发送时间	timestamp	50	√	ⅹ
// productid	产品ID	string	50	√	ⅹ
// file_name	文件名称	string	50	√	ⅹ
// inform_no	通知编号	string	50	√	ⅹ
// inform_content	通知内容	string	2000	√	ⅹ

export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders) {
	const query = complex_query(action_id, session_id, systemid);
	const res = await query
		.add_field('notice_receive', 'notice_receive_no', 'notice_receive_no')
		.add_field('notice_receive', 'inform_no', 'inform_no')
		.add_field('notice_receive', 'inform_title', 'inform_title')
		.add_field('notice_receive', 'inform_content', 'inform_content')
		.add_field('notice_receive', 'receive_time', 'receive_time')
		.where_eq('notice_receive', 'receive_no', '' + message.filter.a + '')
		.where_like('notice_receive', 'inform_title', '%' + message.filter.inform_title + '%')
		// 大于等于
		.where_gte('notice_receive', 'receive_time', message.filter.receive_time)
		// 小于等于
		.where_lte('notice_receive', 'receive_time', message.filter.receive_time_end)
		.exec();
	const res1 = await query
		.add_fun('notice_receive', 'inform_title', 'inform_title', 'count')
		.where_like('notice_receive', 'inform_title', '%' + message.filter.inform_title + '%')
		.where_eq('notice_receive', 'receive_no', '' + message.filter.a + '')
		// 大于等于
		.where_gte('notice_receive', 'receive_time', message.filter.receive_time)
		// 小于等于
		.where_lte('notice_receive', 'receive_time', message.filter.receive_time_end)
		.exec();

	return { res, res1 };
}
